package Q16_04_Tic_Tac_Win; import java.util.Iterator; public class PositionIterator implements Iterator<Position> { private int rowIncrement, colIncrement, size; private Position current; public PositionIterator(Position p, int rowIncrement, int colIncrement, int size) { this.rowIncrement = rowIncrement; this.colIncrement = colIncrement; this.size = size; current = new Position(p.row - rowIncrement, p.column - colIncrement); } @Override public boolean hasNext() { return current.row + rowIncrement < size && current.column + colIncrement < size; } @Override public Position next() { current = new Position(current.row + rowIncrement, current.column + colIncrement); return current; } }